package com.zmn.oms.common.constant;

import com.zmn.consts.DictModel;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * 类描述: 改派配置 常量类
 *
 * @author: liudi
 * @since: 2022/05/07 10:35
 */
public class ConfRedistributeConsts {

	// 改派申请 涉及到权限的操作
	/**
	 * 改派列表导出
	 */
	public static final String ODP_APPLY_LIST_EXPORT = "/work/redistribute/list/export.action";

	/**
	 * 发起人：系统
	 */
	public final static int REDISTRIBUTE_APPLY_TYPE_SYSTEM = 1;
	/**
	 * 发起人：运营后台
	 */
	public final static int REDISTRIBUTE_APPLY_TYPE_ADMIN = 2;
	/**
	 * 发起人：工程师
	 */
	public final static int REDISTRIBUTE_APPLY_TYPE_ENGINEER = 3;


	/**
	 * 转单求助：无需转单求助
	 */
	public final static int HELP_TYPE_NONE = 0;
	/**
	 * 转单求助：范围
	 */
	public final static int HELP_TYPE_RANGE = 1;
	/**
	 * 转单求助：定向
	 */
	public final static int HELP_TYPE_SPECIFY = 2;


	/**
	 * 审核：无需审核
	 */
	public final static int AUDIT_TYPE_NONE = 0;
	/**
	 * 审核：工程师主管审核
	 */
	public final static int AUDIT_TYPE_MANAGER = 1;
	/**
	 * 审核：员工审核
	 */
	public final static int AUDIT_TYPE_STAFF = 2;


	/**
	 * 改派方式：系统改派
	 */
	public final static int REDISTRIBUTE_TYPE_SYSTEM = 1;
	/**
	 * 改派方式：指定改派
	 */
	public final static int REDISTRIBUTE_TYPE_SPECIFY = 2;
	/**
	 * 改派方式：驳回改派
	 */
	public final static int REDISTRIBUTE_TYPE_REJECT = 3;


	/**
	 * 发起人类型列表
	 *
	 * @return
	 */
	public static List<DictModel> getApplyTypeList() {
		List<DictModel> items = new ArrayList<>(3);
		items.add(new DictModel(REDISTRIBUTE_APPLY_TYPE_ADMIN, "运营后台"));
		items.add(new DictModel(REDISTRIBUTE_APPLY_TYPE_ENGINEER, "工程师"));
		items.add(new DictModel(REDISTRIBUTE_APPLY_TYPE_SYSTEM, "系统"));
		return items;
	}

	/**
	 * 获取发起人类型名称
	 *
	 * @param applyType 发起人类型
	 * @return 发起人类型名称
	 */
	public static String getApplyTypeName(Integer applyType) {
		if (Objects.isNull(applyType)) {
			return "";
		}
		switch (applyType) {
			case REDISTRIBUTE_APPLY_TYPE_ADMIN:
				return "运营后台";
			case REDISTRIBUTE_APPLY_TYPE_ENGINEER:
				return "工程师";
			case REDISTRIBUTE_APPLY_TYPE_SYSTEM:
				return "系统";
			default:
				return "";
		}
	}
}
